-----宏启动方式：手动开启键盘大小写，然后按侧键启动，按侧键关闭

---------------------------------------------------玩家设置-----------------------------------------------
HuoKai=3   --自行修改火元素黑人启动（替换为G键位数字即可）
YunKai=4   --自行修改陨石启动（替换为G键位数字即可）

TeXiao=20 --自行修改法尊特效时间（0层火开只支持18以上特效）

YinDaoJianGe=10  --自行修改引导间隔增加则推迟引导（建议10-15）
HeiRenJianGe=3  --自行修改黑人间隔增加则推迟黑人（建议1-5）

ShiJian=60  --自行修改手动可移动时间（60帧=1秒，120帧以上易断勾玉，预留时间太长易超出7秒神目时间）

LED="capslock" --自行修改指示灯按键（可改为"scrolllock"或"numlock"）
ZhanLi="lshift" --自行修改强制站立键（空格为"Spacebar"）
ShenMu="lalt"  --自行修改标记神目键
Move="Tilde"  --自行修改强制移动键（"~"键位为"Tilde"）
BiaoJiMove=1  --自行修改标记神目后鼠标移动模式（0.标记后鼠标不恢复，1.标记后鼠标恢复到人物脚底，注：返回坐标超出屏幕则无法引导）
MoveMouse=1  --自行修改强制移动后鼠标移动模式（0.移动后鼠标不恢复，1.移动后鼠标恢复到陨石落点）
JuLiBi=5  --自行修改陨石落地鼠标返回位置（数值1为陨石落点，建议1-10数值越大鼠标距离人物越近，防止鼠标超出屏幕无法释放技能）
DanFa="lctrl"  --自行修改单双发切换键
BiLi={16,9}--屏幕比例

AnJian={"1","2","3","4","Left","Right"}--技能栏按键设置
--技能从左往右顺序
hd=AnJian[3]--黑洞或者电甲技能栏位置
ylb=AnJian[1]--原力波技能栏位置
ys=AnJian[4]--陨石技能栏位置
hr=AnJian[2]--黑人技能栏位置
dx=AnJian[5]--电刑技能栏位置
yd=AnJian[6]--引导技能栏位置（若无法通过修改JianGe稳定伤害，则引导不可设置为5或6）

---------------------------------------------------全局设置-----------------------------------------------
EnablePrimaryMouseButtonEvents (true)

H=96235
Xo=32767--人物中心X坐标
Yo=30700--人物中心Y坐标

Xi=32748--计算相对坐标中心点
Yi=26132--计算相对坐标中心点

X=0--陨石位置X坐标
Y=0--陨石位置Y坐标
ShenMuX=0--神目位置X坐标
ShenMuY=0--神目位置Y坐标
YunShiX=0--陨石相对位置X坐标
YunShiY=0--陨石相对位置Y坐标

function JiNeng_Down(JiNeng)
        if JiNeng=="Left" then
                PressMouseButton(1)--点击左键
        elseif JiNeng=="Right" then
                PressMouseButton(3)--点击右键
        else 
                PressKey(JiNeng)
        end
end

function JiNeng_Up(JiNeng)
        if JiNeng=="Left" then
                ReleaseMouseButton(1)--释放左键
        elseif JiNeng=="Right" then
                ReleaseMouseButton(3)--释放右键
        else
                ReleaseKey(JiNeng)
        end
end
---------------------------------------------------技能设置-----------------------------------------------
--电刑
function DianXing_Down()
        if IsKeyLockOn(LED)  then
                JiNeng_Down(dx)
        end
end

function DianXing_Up()
        JiNeng_Up(dx)
end

function DianXing(CiShu,XiuZheng)
        if IsKeyLockOn(LED) and CiShu>0 then
                DianXing_Down()
                while CiShu>1
                do
                        YanChi(17)
                        CiShu=CiShu-1
                end
                YanChi(17+XiuZheng)
                DianXing_Up()
        end
end

--引导
function YinDao_Down()
        if IsKeyLockOn(LED)   then
                JiNeng_Down(yd)
        end
end

function YinDao_Up()
        JiNeng_Up(yd)
end

function YinDao(CiShu,XiuZheng)
        if IsKeyLockOn(LED) and CiShu>0 then
                YinDao_Down()
                while CiShu>1
                do
                        YanChi(17)
                        CiShu=CiShu-1
                end
                YanChi(17+XiuZheng)
                YinDao_Up()
        end
end

--原力波
function YuanLiBo_Down()
        if IsKeyLockOn(LED)   then
                JiNeng_Down(ylb)
        end
end

function YuanLiBo_Up()
        JiNeng_Up(ylb)
end

function YuanLiBo(CiShu,XiuZheng)
        if IsKeyLockOn(LED) and CiShu>0 then
                YuanLiBo_Down()
                YuanLiBo_Up()
                YanChi(34+XiuZheng)
        end
end

--陨石
function YunShi_Down()
        if IsKeyLockOn(LED)   then
                JiNeng_Down(ys)
        end
end

function YunShi_Up()
        JiNeng_Up(ys)
end

function YunShi(CiShu,XiuZheng)
        if IsKeyLockOn(LED) and CiShu>0 then
                YunShi_Down()
                YunShi_Up()
                X,Y=GetMousePosition()--记录陨石位置
                YunShi_X()
                YunShi_Y()
                YanChi(33+XiuZheng)
        end
end

--黑洞
function HeiDong_Down()
        if IsKeyLockOn(LED)   then
                JiNeng_Down(hd)
        end
end

function HeiDong_Up()
        JiNeng_Up(hd)
end

function HeiDong(CiShu,XiuZheng)
        if IsKeyLockOn(LED) then
                if CiShu>0 then
                        HeiDong_Down()
                        HeiDong_Up()
                end
                YanChi(34+XiuZheng)
        end
end

--闪电冲击
function ShanDian_Down()
        if IsKeyLockOn(LED)   then
                PressKey(AnJian[1])--点击1键
        end
end

function ShanDian_Up()
        ReleaseKey(AnJian[1])--释放1键
end

function ShanDian(CiShu,XiuZheng)
        if IsKeyLockOn(LED) and CiShu>0 then
                while CiShu>0
                do
                        ShanDian_Down()
                        ShanDian_Up()
                        YanChi(25)
                        CiShu=CiShu-1
                end
        end
end

--黑人
function HeiRen_Down()
        if IsKeyLockOn(LED)  then
                JiNeng_Down(hr)
        end
end

function HeiRen_Up()
        JiNeng_Up(hr)
end

function HeiRen(CiShu,XiuZheng)
        if IsKeyLockOn(LED) and CiShu>0  then
                HeiRen_Down()
                HeiRen_Up()
                YanChi(30)
                YinDao_Up()
                YanChi(20)
                ShanDian(44,0)
                YanChi(50+XiuZheng)
        end
end

function YunShi_X()
        YunShiX=(Xo+(H+Y-Yo)*((Xo-ShenMuX)*H^2/(H+ShenMuY-Yo)^2)/H+H*(X-Xo)/(H+ShenMuY-Yo))--传送后相对陨石X坐标
end

function YunShi_Y()
        YunShiY=(Yo+(Yo-ShenMuY)*H/(H+ShenMuY-Yo)-(Yo-Y)*H/(H+ShenMuY-Yo))--传送后相对陨石Y坐标
end


--踩神目
function CaiShenMu()
        if IsKeyLockOn("capslock") then--判断传送是否标记,标记后才会执行下面的步骤
                if BiaoJi_ShenMu==1 then
                        MoveMouseTo(ShenMuX,ShenMuY)--鼠标移动到神目位置
                        YanChi(3)
                        PressAndReleaseKey(Move)
                        YanChi(41)
                        if MoveMouse==1 then
                                MoveMouseTo(Xi+(YunShiX-Xi)/JuLiBi,Yi+(YunShiY-Yi)/JuLiBi)--鼠标移动使引导对准陨石落点
                        end
                elseif BiaoJi_ShenMu==0 then
                        YanChi(44)
                end
                BiaoJi_ShenMu=0
        end
end

--延迟
function YanChi(ZhenShu)
        if IsKeyLockOn(LED ) then --判断是否灯亮
                XianZai = GetRunningTime()
                while XianZai - KaiShi <(XianZai_ZhenShu+ZhenShu)/60*1000 and IsKeyLockOn(LED) 
                do
                        if IsModifierPressed(ShenMu)  and ShenMu_ZhuangTai==0 then--判断标记神目是否按下
                                ShenMuX,ShenMuY=GetMousePosition()--标记神目位置
                                BiaoJi_ShenMu=1
                                ShenMu_ZhuangTai=1
                        elseif not IsModifierPressed(ShenMu) and ShenMu_ZhuangTai==1 then--判断标记神目按下状态
                                ReleaseKey(ZhanLi)--释放强制站立
                                PressKey(ZhanLi)--点击强制站立
                                if BiaoJiMove==1 and ShenMu_ZhuangTai==1 then
                                        MoveMouseTo(Xo,Yo)--鼠标移动到人物中心位置
                                end
                                ShenMu_ZhuangTai=0
                        elseif IsModifierPressed(DanFa) and BiaoJi_DanFa==0 and DanFa_ZhuangTai==0 then--判断单双切换是否按下
                                BiaoJi_DanFa=1
                                DanFa_ZhuangTai=1
                        elseif IsModifierPressed(DanFa) and BiaoJi_DanFa==1 and DanFa_ZhuangTai==0 then--判断单双切换是否按下
                                BiaoJi_DanFa=0
                                DanFa_ZhuangTai=1
                        elseif not IsModifierPressed(DanFa) and DanFa_ZhuangTai==1 then--判断标记神目按下状态
                                DanFa_ZhuangTai=0
                        end
                        Sleep(3)
                        XianZai = GetRunningTime()
                end
                XianZai_ZhenShu=XianZai_ZhenShu+ZhenShu
        end
end

----------------------------------------------------主程序------------------------------------------------
function OnEvent(event, arg)
        if(event =="MOUSE_BUTTON_PRESSED" and arg ==HuoKai) then--火开
                local CiShu=0
                Sleep(200)--等待宏开始
                BiaoJi_ShenMu=0--标记神目是否按下
                ShenMu_ZhuangTai=0--标记神目状态
                BiaoJi_DanFa=0--单双切换是否按下
                DanFa_ZhuangTai=0--单双切换状态
                KaiShi = GetRunningTime()
                XianZai = GetRunningTime()
                XianZai_ZhenShu=0
                while IsKeyLockOn(LED ) 
                do
                        HeiRen(1,0)
                        PressKey(ZhanLi)--点击强制站立
                        if CiShu==0 then
                                YinDao(6,306-(20-TeXiao)*60)
                                CiShu=1
                        end
                       YanChi(92-2*YinDaoJianGe-ShiJian-HeiRenJianGe)--总时长+2帧数
                               YuanLiBo(1,0)
                                YinDao(2,-5)--刷黄道2-3次
                                YuanLiBo(1,0)
                                YinDao(2,-5)--刷黄道2-3次
                                YuanLiBo(1,0)
                                YinDao(2,-5)--刷黄道2-3次
                        if BiaoJi_DanFa==0 then
                                YuanLiBo(1,0)
                                DianXing(6,-9)
                                YunShi(1,0)
                                DianXing(2,-5)
                                YanChi(YinDaoJianGe)
                                YinDao(2,-5)--出神目
                        else
                                DianXing(15,2+YinDaoJianGe)--维持勾玉
                        end

                        YanChi(ShiJian)--手动移动

                        HeiDong(1-DianJia,0)
                        YuanLiBo(1,0)
                        DianXing(8,-9)
                        YunShi(1,-25)
                        CaiShenMu()--自动踩神目
                        YanChi(10+YinDaoJianGe)
                        YinDao_Down()
                        YanChi(HeiRenJianGe)--黑奥
                        ReleaseKey(ZhanLi)--释放强制站立
                end
                ReleaseKey(ZhanLi)--释放强制站立
        end
        if(event =="MOUSE_BUTTON_PRESSED" and arg ==YunKai) then--冰开
                Sleep(200)--等待宏开始
                BiaoJi_ShenMu=0--标记神目是否按下
                ShenMu_ZhuangTai=0--标记神目状态
                BiaoJi_DanFa=0--单双切换是否按下
                DanFa_ZhuangTai=0--单双切换状态
                KaiShi = GetRunningTime()
                XianZai_ZhenShu=0
                while IsKeyLockOn(LED ) 
                do
                        PressKey(ZhanLi)--点击强制站立
                                YuanLiBo(1,0)
                                YinDao(2,-5)--刷黄道2-3次
                                YuanLiBo(1,0)
                                YinDao(2,-5)--刷黄道2-3次
                                YuanLiBo(1,0)
                                YinDao(2,-5)--刷黄道2-3次
                        if BiaoJi_DanFa==0 then
                                YuanLiBo(1,0)
                                DianXing(6,-9)
                                YunShi(1,0)
                                DianXing(2,-5)
                                YanChi(YinDaoJianGe)
                                YinDao(2,-5)--出神目
                        else
                                DianXing(15,2+YinDaoJianGe)--维持勾玉
                        end

                        YanChi(ShiJian)--手动移动

                        YuanLiBo(1,0)
                        DianXing(8,-9)
                        YunShi(1,-25)
                        CaiShenMu()--自动踩神目
                        YanChi(10+YinDaoJianGe)
                        YinDao_Down()
                        YanChi(HeiRenJianGe)--黑奥
                        ReleaseKey(ZhanLi)--释放强制站立

                        HeiRen(1,0)
                        YanChi(92-2*YinDaoJianGe-ShiJian-HeiRenJianGe)--总时长+2帧数
                end
                ReleaseKey(ZhanLi)--释放强制站立
        end
end